Session Border Controllers (SBC) are optional border elements which can help securely connect a customer Session Initiation Protocol (SIP) network to external SIP networks. SBCs deal with both media and signaling and can perform protocol adaptation, address translation, enforce complex polices, media transcoding, topology hiding etc. When enabling a call between a private enterprise network and a service provider or endpoint on the public Internet, an SBC changes Internet Protocol (IP) addresses in the Contact, Request-URI, Route, Record-Route and Via headers whenever a SIP message crosses the network boundary. This enables most call flows, but is not sufficient to fully enable call transfers to work across the SBC.
The industry at large has attempted to address this problem by simply not allowing REFER messages (e.g., SIP messages used to facilitate transfers) to propagate across an SBC. Instead, the traditional approach is to have the SBC act on the message itself. This does enable some simple transfers to work, but it causes some problems by not making the new topology of the call apparent to the transferee or the transfer target endpoints. This approach can cause problems for many different types of conference calls.
Some SBCs have attempted to solve the problem by simply passing the REFER with its addresses through without any processing, in particular from the public side to the private side, and assuming that public addresses are routable from the private side. Often this assumption is an inaccurate one.